www.gusucode.com > VC++ 通过串口收发送消息小例子-源码程序 > VC++ 通过串口收发送消息小例子-源码程序/code/smstest/SettingsDlg.cpp

    // SettingsDlg.cpp : implementation file
// download by http://www.NewXing.com

#include "stdafx.h"
#include "SmsTest.h"
#include "SettingsDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSettingsDlg dialog


CSettingsDlg::CSettingsDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSettingsDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSettingsDlg)
	m_strSmsc = _T("");
	//}}AFX_DATA_INIT
}


void CSettingsDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSettingsDlg)
	DDX_Control(pDX, IDC_RATE_LIST, m_ctrlRateList);
	DDX_Control(pDX, IDC_COMM_LIST, m_ctrlCommList);
	DDX_Text(pDX, IDC_SMSC, m_strSmsc);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSettingsDlg, CDialog)
	//{{AFX_MSG_MAP(CSettingsDlg)
	//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSettingsDlg message handlers

BOOL CSettingsDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CString strComm;
	for(int i=0; i<9; i++)
	{
		strComm.Format("COM%d", i + 1);
		m_ctrlCommList.AddString(strComm);
	}
		
	m_ctrlRateList.AddString("9600");
	m_ctrlRateList.AddString("14400");
	m_ctrlRateList.AddString("19200");
	m_ctrlRateList.AddString("28800");
	m_ctrlRateList.AddString("38400");
	m_ctrlRateList.AddString("57600");
	m_ctrlRateList.AddString("115200");
	
	if(m_strPort.IsEmpty()) m_strPort="COM3";
	if(m_strRate.IsEmpty()) m_strRate="57600";

	m_ctrlCommList.SelectString(-1, m_strPort);
	m_ctrlRateList.SelectString(-1, m_strRate);

	m_strSmsc="13800311500";
	UpdateData(false);
	
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSettingsDlg::OnOK() 
{
	UpdateData();
	int nSel; 
	nSel=m_ctrlCommList.GetCurSel();
	if(nSel>-1)
	{
		m_ctrlCommList.GetLBText(nSel,m_strPort);
	}
	else
	{
		nSel=m_ctrlRateList.GetCurSel();
	if(nSel>-1)
	{
		m_ctrlRateList.GetLBText(nSel,m_strRate);
	}
	else
	{
	if(m_strPort.IsEmpty()||m_strRate.IsEmpty()||m_strSmsc.IsEmpty())
	{
		AfxMessageBox("请正确设置端口和SMSC!");
		return;
	}
		}
	}
	CDialog::OnOK();
}


void CSettingsDlg::OnCancel() 
{
	
	::PostMessage(GetParent()->m_hWnd,WM_CLOSE,0,0);
	CDialog::OnCancel();
}